﻿namespace Busconeitor.DataLayer
{
    using Domain.Entities;
    using Domain.Utils.SimpleList;

    public class EngineDb
    {
        #region Atributos

        #endregion

        #region Constructores

        #endregion

        #region Propiedades

        #endregion

        #region Metodos

        /// <summary>
        /// Este es el metodo principal por el cual se realiza una busqueda en base de datos devolviendo el array de documentos que responden a la busqueda.
        /// </summary>
        /// <param name="listTerm"></param>
        /// <returns></returns>
        public static DocumentoEntity[] ExcecuteQuery(SimpleList listTerm)
        {
            var terms = TermDb.FindTerms(listTerm);
            DocumentoEntity[] arrayDocument = null;

            if (terms.Size() > 0)
            {
                var documents = DocumentDb.FindPost(terms);
                arrayDocument = new DocumentoEntity[documents.Size()];

                documents.StartIterator();
                var index = 0;

                while (documents.HasNext())
                {
                    arrayDocument[index] = (DocumentoEntity)documents.Next();
                    index++;
                }
                
            }
          
            return arrayDocument;
        } 

        #endregion
    }
}
